#ifndef MYGame_H
#define MYGame_H
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <stdlib.h>
#include "Fence.h"
#include "Object.h"
#include "Chicken.h"
#include "Duck.h"
#include "Goose.h"
#include "Basket.h"
#include "Poulty.h"
#include "defines.h"

class Game {

private:
	bool running;
	SDL_Surface* livesSurface;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Surface* eggsSurface;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Surface* levelSurface;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Surface* gameOverSurface;/*Kieu Du Lieu cua thu vien SDL*/
	Uint32 clearColor ;/*Kieu Du Lieu cua thu vien SDL*/
	TTF_Font *font ;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Color textColor;/*Kieu Du Lieu cua thu vien SDL*/
public:
	Uint32 start ;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Event occur;/*Kieu Du Lieu cua thu vien SDL*/
	SDL_Surface *screen ;/*Kieu Du Lieu cua thu vien SDL*/
	Fence fence;
	Basket *basket;
	Poulty *arrObjects [NUMBER_OF_POULTRIES];
	int currentNumberObject;
	bool KEYS[322];  
	double deltaTime;
	Uint32 thisTime ;/*Kieu Du Lieu cua thu vien SDL*/
	Uint32 lastTime ;/*Kieu Du Lieu cua thu vien SDL*/
	Uint32 frameRate;/*Kieu Du Lieu cua thu vien SDL*/
	int eggs;
	int level;
	int speedForAllofEggs ;
	int currentState;
public:
	enum States{
		kGameOver,
		kGameUpdate
	};
	Game();
	~Game();
	void gameLoad();
	void gameInit();
	void gameRun();
	void gameInput();
	void gameUpdate();
	void gameDraw();
	void gameClean();
	void gameClearScreen();
	void increaseEggs(int eggs);
	void increaseLevels(int level);
	void descreaseLives(int life);
	void increaseEggsSpeed();
	void setState(int state){currentState = state;}
};

#endif